The widespread use and increase in popularity of wireless devices have led to an increase in the number of wireless device types in the world. For example, the use of cellular phones, personal digital assistants (PDAs), PalmPilots, BlackBerrys, laptops, IPods, etc., have become prevalent in the market. The increase in the number of wireless devices has also increased the demand for various applications to run on various wireless devices.
The market is fractured among many manufacturers with different types of wireless devices including brands, models, generations, etc. For example, each year new manufacturers enter the market and existing manufacturers provide new models and new versions for existing wireless devices. Each wireless device is unique based on its brand, model, rendering capability, battery life, processing power, display resolution, color capability, display size, etc., collectively known as wireless device attributes.
Unfortunately, since each wireless device is unique, each application must be tailored in accordance with the wireless device attributes to fully utilize the capabilities of the wireless device. For example, to utilize the entire display of the wireless device, the application must be tailored to render the application in accordance with the display size and resolution of the wireless device. Further, various wireless devices each have various processing and graphics display capabilities. For example, newer wireless devices may have more advanced and capable processing units and customizing applications to make use of these additional capabilities requires tailoring the application.
The increase in the number of applications, the types of wireless devices and the need to tailor each application to a given wireless device type has increased the cost of developing applications. With ever increasing number of models and brands of wireless devices, the number of applications and application versions required to accommodate all of these different wireless devices has increased as well. Since each application must be specific to a given wireless device type with a given brand and model, applications are substantially developed from the ground up for each wireless device type, which increases the cost of developing the application.
Moreover, the increase in cost of developing applications due to the need to tailor each application to all the specific brands and models of wireless devices has hindered and limited the number of titles that a software vendor can produce annually. Software developers simply do not have the time or the resources to take even a single application through a customized quality assurance and debugging process, much less each application for each type of wireless device, thereby limiting the number of titles that a software vendor can produce.
Also, the task of producing all the required versions of a title is not only time consuming and laborious but it also tends to limit upgrades and patches to existing titles. Developers or application vendors need to enter the costly process of submitting the patch or upgrade to reenter quality assurance to a service provider or carrier. In general, a wireless device runs the application locally and renders the result. Thus, updating applications requires a patch/update to be specially developed for and provided to each wireless device individually. For example, updating/patching an application may require the wireless device user to access the application provider's website via the wireless device and to navigate through multiple pages in order to determine whether an update is ready. When an update is ready, the user is required to actively initiate the update process. As a result, many users may not update their applications due to this laborious process.
Prior approaches have dealt with the limited and various capabilities of wireless devices with a client application which off loads the processing to a more powerful server. Often, the wireless device runs a generic client which relies on the server to provide substantially all functionality. As a result, the wireless device is used largely for rendering. Such approaches have limits in providing real-time and interactivity to users such as when resources are needed immediately from the server. For example, real time display of information such as dynamic menus may require waiting for the server to respond.
Thus, a need has arisen to enable applications to provide a rich user experience on wireless devices via a thin client which can be updated at anytime.